Session + Cookie + Redis 模式实现详解

一、整体架构概览

Session_+_Cookie_+_Redis整体框架-0492033c

二、项目结构说明

结构说明-ce78d828

三、配置管理机制

3.1 三层配置架构

三层配置架构-51520bf2

3.2 环境变量映射规则

┌──────────────────────────────────────────────────────────────────┐
│              YAML 配置 → 环境变量 自动转换规则                    │
├──────────────────────────────────────────────────────────────────┤
│                                                                   │
│  YAML 路径                    环境变量名                          │
│  ─────────────────────────    ──────────────────────────────     │
│  app.name                  →  APP_NAME                           │
│  app.session.store-type    →  APP_SESSION_STORE_TYPE             │
│  app.session.timeout-minutes → APP_SESSION_TIMEOUT_MINUTES       │
│  app.jwt.secret            →  APP_JWT_SECRET                     │
│                                                                   │
│  转换规则:                                                        │
│  1. 点(.) 替换为 下划线(_)                                        │
│  2. 横杠(-) 替换为 下划线(_)                                      │
│  3. 全部转大写                                                    │
│                                                                   │
└──────────────────────────────────────────────────────────────────┘

四、Session 存储策略模式

4.1 策略模式实现

策略模式实现-80764380

4.2 内存存储实现细节

内存存储实现细节-d3bc5451

4.3 Redis 存储实现细节

Redis_存储实现细节-bb6f5d55

五、登录认证流程

5.1 用户登录流程

用户登录流程-ede190fc

5.2 请求认证流程

请求认证流程-c096fc9b

六、Cookie 安全特性

6.1 安全配置详解

Cookie_安全特性-f4929deb

6.2 开发 vs 生产环境对比

开发_vs_生产环境-51303087

七、滑动窗口机制

滑动窗口机制-ce3ec307

八、单点登录机制

单点登录机制-cca62a64

九、关键代码调用链

关键代码调用链-e846ddab

十、总结

这套 Session + Cookie + Redis 模式实现了一个完整的用户认证系统,核心要点:

特性 说明
策略模式 SessionStore 接口抽象,内存/Redis 实现可切换
条件装配 根据配置自动选择存储实现
三层配置 yml 默认值 → profile 特定 → 环境变量覆盖
安全Cookie HttpOnly + Secure + SameSite 多重防护
滑动窗口 活跃用户自动续期
单点登录 新登录踢掉旧设备
分布式支持 Redis 存储支持集群部署

项目分区导航:⬅️ 03-session单模式登录+鉴权流程流程一览 | 04-Session + Cookie + Redis 模式实现详解 | ➡️ 05-ZwwwSpringBootBaseTemplate工程模板